---
sidebar_position: 1.1
description: Learn how to use the status light on DeviceScript to message
    application states. Control the status LED until a system LED pattern is
    scheduled by the runtime.
---

# Status Light

DeviceScript uses various blinking patterns on the status LED to message application states.

## Controlling the status led

You can set the status LED (until a system LED pattern is scheduled by the runtime)
using the `setStatusLight` function.

```ts
import { delay } from "@devicescript/core"
import { setStatusLight } from "@devicescript/runtime"

setInterval(async () => {
    await setStatusLight(0x00ff00) // green
    await delay(500)
    await setStatusLight(0x000000) // off
}, 500)
```

## Network connectivity

-   connecting to network: slow yellow glow
-   connecting to gateway: fast yellow glow
-   connected to gateway: very slow blue glow
-   not connected to cloud: very slow red

## Gateway messages

-   message uploaded: purple short blink
-   message failed to upload: red short blink

## Errors

-   jacdac line error: yellow blink
-   packet overflow: magenta blink
-   generic error: short red blink

The blinking patterns are defined at https://github.com/microsoft/jacdac-c/blob/main/inc/jd_io.h#L77
